import { createApp } from 'vue'
import App from './App.vue'

// 引入路由
import router from './routers/index'

// 引入UI框架 全局性挂载
import Vant from 'vant'
import 'vant/lib/index.css'

/* 引入 ElementPlus */
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

// 引入cookie插件
import VueCookies from 'vue3-cookies'

// 引入封装的axios异步请求插件
import request from './services/request'

// 引入自定义封装的工具箱
import tools from './services/tools'



const app = createApp(App)
    .use(router)
    .use(Vant)
    .use(ElementPlus)
    .use(VueCookies)
    .use(request)
    .use(tools)
    .mount('#app')


//路由守卫
// eslint-disable-next-line no-unused-vars
router.beforeEach(async (to, from) => {
    //to 这个参数代表 去到哪个路由
    //from 这个参数代表 从哪里来
    //next 这个参数代表 是否可以去到下一步
    // console.log(to)

    //IsLogin 如果等于true 就说明当前访问的路由 是需要登录才可以访问
    var IsLogin = to.meta.IsLogin ? to.meta.IsLogin : false

    if (IsLogin) {
        //需要登录访问
        var result = await app.$login()

        //查找用户失败
        if (result.code == 0) {
            //保留它所需要去到页面地址
            app.$cookies.set('redirect', to.fullPath);

            //清除缓存
            app.$cookies.remove('business')

            //提醒消息
            app.$fail(result.msg)

            //跳转回登录界面
            return { path: '/business/login' }
        }

        //如果存在用户，接口会返回最新的用户数据给回我们.覆盖cookie
        app.$cookies.set('business', result.data);
    }
})
